package cn.bonoon.kernel.annotations;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * <pre>
 * 注意：如果在配置信息对象的字段使用本注解，或者使用自定义对象，则该对象有两种方式进行创建，
 * 一种是通过构造函数，这种方式与普通实体对象一样，另一种则可以写一个静态的valueOf方法，
 * 使用valueOf方法的规则是，该方法接受一个字符串类型的参数，并且返回被创建的对象本身；
 * 
 * A：为什么要使用本注解呢？
 * Q：通过本注解来指定需要创建的对象的类型，这样实体字段上可以使用接口或本注解指定类型的父类
 * </pre>
 * @author jackson
 *
 */
@Target(FIELD)
@Retention(RUNTIME)
public @interface ObjectClass {
	Class<?> value();
}
